package com.zlc.platform.service;


import com.zlc.common.common.entity.PageVo;
import com.zlc.common.core.user.model.vo.MayanPlatUserVo;
import com.zlc.common.model.resource.MyResourceVo;
import com.zlc.common.model.user.UserInfo;
import com.zlc.common.model.user.UserPageRequest;
import com.zlc.platform.model.PermissionEntity;

import java.util.List;

/**
 * 用户service
 */
public interface UserService {


    /**
     * 登录
     */
    UserInfo login(String userAccount, String password);

    /**
     * 获取当前登录是否需要验证码
     */
    boolean needCheckCode();

    /**
     * 新事务保存
     */
    void asyncSaveUser(MayanPlatUserVo userVo);


    /**
     * 退出登录
     */
    void outLogin();


    /**
     * 获取当前用户信息
     */
    UserInfo get();


    /**
     * 查询当前用户资源权限
     */
    PermissionEntity getMenu(String systemCode);

    /**
     * 查询用户通过主键
     */
    MayanPlatUserVo getById(String id);


    /**
     * 新增用户
     */
    void add(MayanPlatUserVo userVo);


    /**
     * 更新用户
     */
    void update(MayanPlatUserVo userVo);

    /**
     * 更新当前用户
     */
    void updateNowUser(MayanPlatUserVo userVo);

    /**
     * 分页查询用户
     */
    PageVo<MayanPlatUserVo> userList(UserPageRequest pageRequest);

    /**
     * 模糊查询用户信息
     */
    List<MayanPlatUserVo> queryUserList(String key);


    /**
     * 重置密码
     */
    void resetPassword(String account);

    /**
     * 更新密码
     */
    void changePassword(String oldPassword,String newPassword);

    /**
     * 禁用用户
     */
    void disabled(String userAccount);
}

